知识总结

CODE IS POETRY

Mongodb $lookup多文档联表查询

mongodb $lookup联表查询有两种方式:

返回整个文档

1
2
3
4
5
6
7
8
{
$lookup: {
from: 'products', //关联你需要查询的表2
localField: 'product_id', //指定表1中的一个关键字段对应第三个参数
foreignField: '_id', //指定表2中的一个关键字段对应第二个参数
as: 'orderLists' //查询时,当第二个参数满足第一个参数,则将集合添加进orderlists
}
}

pipeline 查询返回

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
$lookup: {
from: "products", //关联你需要查询的表2
let: {
name: "$data.name" //将表1中的字段自定义为一个查询参数
},
pipeline: [{
$match: {
category: 1, //固定参数查询
$expr: { $eq: ["$name", "$$name"] } //其他$expr查询
}
},
{ $project: { _id: 0 } }
], //project 返回需要的数据
// 其他pipeline
as: 'data.productInfo' //最终数据保存到productInfo中
}
}


© 2020 Tung

粤ICP备19047572号